<svg width="504pt" height="166pt"  viewBox="0.00 0.00 504.00 166.41" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(0.54 0.54) rotate(0) translate(4 306.87)"> <polygon fill="white" stroke="transparent" points="-4,4 -4,-306.87 937.51,-306.87 937.51,4 -4,4"/> <g id="clust3" class="cluster"> <title>cluster_gpu_executable</title> <polygon fill="none" stroke="black" points="804.31,-8 804.31,-220 933.51,-220 933.51,-8 804.31,-8"/> <text text-anchor="middle" x="868.91" y="-204.8" font-family="Times,serif" font-size="14.00">GpuExecutable</text> </g> <g id="clust4" class="cluster"> <title>cluster_thunk_sequence</title> <polygon fill="none" stroke="black" points="812.31,-16 812.31,-145 925.51,-145 925.51,-16 812.31,-16"/> <text text-anchor="middle" x="868.91" y="-129.8" font-family="Times,serif" font-size="14.00">ThunkSequence</text> </g> <!-- unopt_hlo --> <g id="googlegreen" class="node"> <title>unopt_hlo</title> <ellipse fill="none" stroke="black" cx="101.82" cy="-276" rx="70.01" ry="26.74"/> <text text-anchor="middle" x="101.82" y="-279.8" font-family="Times,serif" font-size="14.00">Unoptimized</text> <text text-anchor="middle" x="101.82" y="-264.8" font-family="Times,serif" font-size="14.00">HLO</text> </g> <!-- hlo_passes --> <g id="googleblue" class="node"> <title>hlo_passes</title> <polygon fill="none" stroke="black" points="147.82,-231 55.82,-231 55.82,-195 147.82,-195 147.82,-231"/> <text text-anchor="middle" x="101.82" y="-209.3" font-family="Times,serif" font-size="14.00">HLO passes</text> </g> <!-- unopt_hlo&amp;#45;&amp;gt;hlo_passes --> <g id="edge1" class="edge"> <title>unopt_hlo&amp;#45;&amp;gt;hlo_passes</title> <path fill="none" stroke="black" d="M101.82,-249.06C101.82,-246.45 101.82,-243.85 101.82,-241.25"/> <polygon fill="black" stroke="black" points="105.32,-241.21 101.82,-231.21 98.32,-241.21 105.32,-241.21"/> </g> <!-- opt_hlo --> <g id="googlegreen" class="node"> <title>opt_hlo</title> <ellipse fill="none" stroke="black" cx="101.82" cy="-150" rx="101.65" ry="26.74"/> <text text-anchor="middle" x="101.82" y="-153.8" font-family="Times,serif" font-size="14.00">Optimized and</text> <text text-anchor="middle" x="101.82" y="-138.8" font-family="Times,serif" font-size="14.00">Canonicalized HLO</text> </g> <!-- hlo_passes&amp;#45;&amp;gt;opt_hlo --> <g id="edge2" class="edge"> <title>hlo_passes&amp;#45;&amp;gt;opt_hlo</title> <path fill="none" stroke="black" d="M101.82,-194.75C101.82,-192.27 101.82,-189.78 101.82,-187.29"/> <polygon fill="black" stroke="black" points="105.32,-187.07 101.82,-177.07 98.32,-187.07 105.32,-187.07"/> </g> <!-- buffer_assigner --> <g id="googleblue" class="node"> <title>buffer_assigner</title> <polygon fill="none" stroke="black" points="389.69,-222 267.69,-222 267.69,-186 389.69,-186 389.69,-222"/> <text text-anchor="middle" x="328.69" y="-200.3" font-family="Times,serif" font-size="14.00">BufferAssigner</text> </g> <!-- opt_hlo&amp;#45;&amp;gt;buffer_assigner --> <g id="edge3" class="edge"> <title>opt_hlo&amp;#45;&amp;gt;buffer_assigner</title> <path fill="none" stroke="black" d="M177.7,-167.98C203.42,-174.16 232.09,-181.04 257.43,-187.13"/> <polygon fill="black" stroke="black" points="256.79,-190.57 267.33,-189.5 258.42,-183.77 256.79,-190.57"/> </g> <!-- lmhlo --> <g id="googlegreen" class="node"> <title>lmhlo</title> <ellipse fill="none" stroke="black" cx="328.69" cy="-96" rx="35.19" ry="18"/> <text text-anchor="middle" x="328.69" y="-92.3" font-family="Times,serif" font-size="14.00">LMHLO</text> </g> <!-- opt_hlo&amp;#45;&amp;gt;lmhlo --> <g id="edge4" class="edge"> <title>opt_hlo&amp;#45;&amp;gt;lmhlo</title> <path fill="none" stroke="black" d="M177.7,-132.02C214.09,-123.28 256.4,-113.12 286.79,-105.82"/> <polygon fill="black" stroke="black" points="287.71,-109.2 296.62,-103.46 286.08,-102.39 287.71,-109.2"/> </g> <!-- buffer_assignment --> <g id="googlegreen" class="node"> <title>buffer_assignment</title> <ellipse fill="none" stroke="black" cx="328.69" cy="-150" rx="89.08" ry="18"/> <text text-anchor="middle" x="328.69" y="-146.3" font-family="Times,serif" font-size="14.00">BufferAssignment</text> </g> <!-- buffer_assigner&amp;#45;&amp;gt;buffer_assignment --> <g id="edge5" class="edge"> <title>buffer_assigner&amp;#45;&amp;gt;buffer_assignment</title> <path fill="none" stroke="black" d="M328.69,-185.79C328.69,-183.31 328.69,-180.83 328.69,-178.34"/> <polygon fill="black" stroke="black" points="332.19,-178.14 328.69,-168.14 325.19,-178.14 332.19,-178.14"/> </g> <!-- buffer_assignment&amp;#45;&amp;gt;lmhlo --> <g id="edge6" class="edge"> <title>buffer_assignment&amp;#45;&amp;gt;lmhlo</title> <path fill="none" stroke="black" d="M328.69,-131.79C328.69,-129.31 328.69,-126.83 328.69,-124.34"/> <polygon fill="black" stroke="black" points="332.19,-124.14 328.69,-114.14 325.19,-124.14 332.19,-124.14"/> </g> <!-- ir_emitter --> <g id="googleblue" class="node"> <title>ir_emitter</title> <polygon fill="none" stroke="black" points="537.73,-114 453.73,-114 453.73,-78 537.73,-78 537.73,-114"/> <text text-anchor="middle" x="495.73" y="-92.3" font-family="Times,serif" font-size="14.00">IREmitter</text> </g> <!-- lmhlo&amp;#45;&amp;gt;ir_emitter --> <g id="edge7" class="edge"> <title>lmhlo&amp;#45;&amp;gt;ir_emitter</title> <path fill="none" stroke="black" d="M363.89,-96C386.89,-96 417.63,-96 443.54,-96"/> <polygon fill="black" stroke="black" points="443.57,-99.5 453.57,-96 443.57,-92.5 443.57,-99.5"/> </g> <!-- gpu_ir --> <g id="googlegreen" class="node"> <title>gpu_ir</title> <ellipse fill="none" stroke="black" cx="622.52" cy="-161" rx="48.58" ry="26.74"/> <text text-anchor="middle" x="622.52" y="-164.8" font-family="Times,serif" font-size="14.00">LLVM IR</text> <text text-anchor="middle" x="622.52" y="-149.8" font-family="Times,serif" font-size="14.00">(GPU)</text> </g> <!-- ir_emitter&amp;#45;&amp;gt;gpu_ir --> <g id="edge8" class="edge"> <title>ir_emitter&amp;#45;&amp;gt;gpu_ir</title> <path fill="none" stroke="black" d="M531.49,-114.11C545.71,-121.51 562.32,-130.16 577.37,-138.01"/> <polygon fill="black" stroke="black" points="576.03,-141.25 586.51,-142.77 579.26,-135.04 576.03,-141.25"/> </g> <!-- thunk0 --> <g id="googlegreen" class="node"> <title>thunk0</title> <ellipse fill="none" stroke="black" cx="868.41" cy="-96" rx="35.19" ry="18"/> <text text-anchor="middle" x="868.41" y="-92.3" font-family="Times,serif" font-size="14.00">Thunk</text> </g> <!-- ir_emitter&amp;#45;&amp;gt;thunk0 --> <g id="edge11" class="edge"> <title>ir_emitter&amp;#45;&amp;gt;thunk0</title> <path fill="none" stroke="black" d="M537.82,-96C608.06,-96 750.67,-96 823.08,-96"/> <polygon fill="black" stroke="black" points="823.23,-99.5 833.23,-96 823.23,-92.5 823.23,-99.5"/> </g> <!-- thunk1 --> <g id="googlegreen" class="node"> <title>thunk1</title> <ellipse fill="none" stroke="black" cx="868.41" cy="-42" rx="35.19" ry="18"/> <text text-anchor="middle" x="868.41" y="-38.3" font-family="Times,serif" font-size="14.00">Thunk</text> </g> <!-- ir_emitter&amp;#45;&amp;gt;thunk1 --> <g id="edge12" class="edge"> <title>ir_emitter&amp;#45;&amp;gt;thunk1</title> <path fill="none" stroke="black" d="M537.82,-90.01C608.51,-79.72 752.49,-58.74 824.46,-48.26"/> <polygon fill="black" stroke="black" points="825.14,-51.69 834.54,-46.79 824.13,-44.77 825.14,-51.69"/> </g> <!-- llvm_gpu --> <g id="googleblue" class="node"> <title>llvm_gpu</title> <polygon fill="none" stroke="black" points="784.31,-185 707.31,-185 707.31,-147 784.31,-147 784.31,-185"/> <text text-anchor="middle" x="745.81" y="-169.8" font-family="Times,serif" font-size="14.00">LLVM JIT</text> <text text-anchor="middle" x="745.81" y="-154.8" font-family="Times,serif" font-size="14.00">(GPU)</text> </g> <!-- gpu_ir&amp;#45;&amp;gt;llvm_gpu --> <g id="edge9" class="edge"> <title>gpu_ir&amp;#45;&amp;gt;llvm_gpu</title> <path fill="none" stroke="black" d="M671.46,-162.98C679.84,-163.32 688.56,-163.68 696.93,-164.03"/> <polygon fill="black" stroke="black" points="696.8,-167.52 706.94,-164.44 697.09,-160.53 696.8,-167.52"/> </g> <!-- ptx --> <g id="googlegreen" class="node"> <title>ptx</title> <ellipse fill="none" stroke="black" cx="868.41" cy="-171" rx="27" ry="18"/> <text text-anchor="middle" x="868.41" y="-167.3" font-family="Times,serif" font-size="14.00">PTX</text> </g> <!-- llvm_gpu&amp;#45;&amp;gt;ptx --> <g id="edge10" class="edge"> <title>llvm_gpu&amp;#45;&amp;gt;ptx</title> <path fill="none" stroke="black" d="M784.64,-167.57C799.42,-168.18 816.31,-168.88 830.96,-169.49"/> <polygon fill="black" stroke="black" points="831.04,-172.99 841.17,-169.91 831.33,-166 831.04,-172.99"/> </g> </g> </svg>
